Example: This example demonstrates the elements needed to specify a document as PDF/UA compatible.
import com.cete.dynamicpdf.*; import com.cete.dynamicpdf.pageelements.Label; import com.cete.dynamicpdf.pageelements.forms.TextField; import com.cete.dynamicpdf.text.OpenTypeFont; import com.cete.dynamicpdf.xmp.DublinCoreSchema; import com.cete.dynamicpdf.xmp.PdfUASchema; import com.cete.dynamicpdf.xmp.XmpMetadata; public class MyClass{ public static void main(String args[]){ // Create a PDF Document Document document = new Document(); // Set the TagOptions to document TagOptions Tag = new TagOptions(); document.setTag(Tag); // Create StructureElement objects and set Order etc. StructureElement structureDocument = new StructureElement(TagType.getDocument()); StructureElement structureHeading = new StructureElement(TagType.getHeading()); StructureElement structureForm = new StructureElement(TagType.getForm()); structureHeading.setParent(structureDocument); structureForm.setParent(structureDocument); // Create AttributeObject objects with tag order and parents. AttributeObject attrObjLayout = new AttributeObject(AttributeOwner.LAYOUT); attrObjLayout.setPlacement(Placement.BLOCK); structureForm.getAttributeLists().add(attrObjLayout); StructureElement structureForm2 = new StructureElement(TagType.getForm()); structureForm2.setParent(structureDocument); structureForm2.getAttributeLists().add(attrObjLayout); StructureElement structureParagraph = new StructureElement(TagType.getParagraph()); structureParagraph.setParent(structureDocument); StructureElement structureParagraph2 = new StructureElement(TagType.getParagraph()); structureParagraph2.setParent(structureDocument); // Set Document Language document.setLanguage("en-us"); document.getViewerPreferences().setDisplayDocTitle(true); // Create a Page Page page = new Page(); // Create a Label and set Tag Label lblEnterName = new Label("EnterName:", 0, 100, 100, 50); lblEnterName.setTag(structureParagraph); Label lblAge = new Label("Age:", 0, 200, 100, 50); lblAge.setTag(structureParagraph2); // Create a TextField and set Tag TextField txtField1 = new TextField("txt1", 100, 100, 100, 50); TextField txtField2 = new TextField("txt2", 100, 200, 100, 50); txtField1.setTag(structureForm); txtField2.setTag(structureForm2); // Create an OpenTypeFont object with Embed option and ToolTip OpenTypeFont font = new OpenTypeFont("times.ttf"); font.setEmbed(true); font.setSubset(false); lblEnterName.setFont(font); lblAge.setFont(font); txtField1.setFont(font); txtField1.setToolTip("Name"); txtField2.setFont(font); txtField2.setToolTip("age"); // Add the Elements to the Page page.getElements().add(lblEnterName); page.getElements().add(txtField1); page.getElements().add(lblAge); page.getElements().add(txtField2); // Add Page to the Document document.getPages().add(page); // Create an Xmp Metadata XmpMetadata xmp = new XmpMetadata(); // Create a PdfUASchema and add to XMP matadata PdfUASchema customSchema = new PdfUASchema(); xmp.addSchema(customSchema); // Create DublinCoreSchema and set properties DublinCoreSchema dc = xmp.getDublinCore(); dc.getTitle().addLang("en-us", "XMP"); dc.getTitle().setDefault("Title Text"); // Adding the XmpMatadata to the document document.setXmpMetadata(xmp); // Save the PDF document document.draw("[outputPath]/output.pdf"); } }